QuerySelect

Table des matières

La classe QuerySelect est utilisée pour construire et exécuter des requêtes SQL de type SELECT.

NOTE : Cette classe ne prend pas en charge toutes les fonctionnalités SQL, comme les requêtes récursives WITH.

Propriétés

  • private array $withs : Tableau privé des clauses WITH pour la requête SELECT.
  • private array $columns : Colonnes à sélectionner.
  • private array $distinctOn : Colonnes pour appliquer la clause DISTINCT ON.
  • private array|null $from : Table(s) à sélectionner.
  • private array $joins : Clauses JOIN.
  • private array|null $wheres : Clauses WHERE.
  • private array|null $groupBy : Colonnes pour la clause GROUP BY.
  • private string|null $having : Clause HAVING.
  • private string|null $orderBy : Clause ORDER BY.
  • private int|null $limit : Clause LIMIT.
  • private int|null $offset : Clause OFFSET.

Méthodes

addWith(string $name, QuerySelect $query): QuerySelect

public function addWith(string $name, QuerySelect $query): QuerySelect

Description

Ajoute une clause WITH à la requête.

Paramètres

  • name (string) : Le nom de la clause WITH.
  • query (QuerySelect) : La requête à utiliser dans la clause WITH.

Retour

  • QuerySelect : Cette instance.

setWiths(array $withs): QuerySelect

public function setWiths(array $withs): QuerySelect

Description

Définit les clauses WITH de la requête.

Paramètres

  • withs (array) : Les clauses WITH.

Retour

  • QuerySelect : Cette instance.

getWiths(): array

public function getWiths(): array

Description

Retourne les clauses WITH de la requête.

Retour

  • array : Les clauses WITH.

addColumn(string $name, string $alias = null): QuerySelect

public function addColumn(string $name, string $alias = null): QuerySelect

Description

Définit une colonne à sélectionner.

Paramètres

  • name (string) : Le nom de la colonne.
  • alias (string|null) : L'alias de la colonne (optionnel).

Retour

  • QuerySelect : Cette instance.

addColumns(array $columns): QuerySelect

public function addColumns(array $columns): QuerySelect

Description

Ajoute plusieurs colonnes à sélectionner.

Paramètres

  • columns (array) : Les colonnes à sélectionner.

Retour

  • QuerySelect : Cette instance.

setColumns(array $columns): QuerySelect

public function setColumns(array $columns): QuerySelect

Description

Définit les colonnes à sélectionner.

Paramètres

  • columns (array) : Les colonnes à sélectionner.

Retour

  • QuerySelect : Cette instance.

removeColumn(string|int $indexOrColumnOrAlias): QuerySelect

public function removeColumn(string|int $indexOrColumnOrAlias): QuerySelect

Description

Supprime une colonne de la requête SELECT.

Paramètres

  • indexOrColumnOrAlias (string|int) : L'index, le nom ou l'alias de la colonne à supprimer.

Retour

  • QuerySelect : L'instance mise à jour.

removeColumns(array $columns): QuerySelect

public function removeColumns(array $columns): QuerySelect

Description

Supprime plusieurs colonnes de la requête SELECT.

Paramètres

  • columns (array) : Les colonnes à supprimer.

Retour

  • QuerySelect : L'instance mise à jour.

setDistinctOn(array $columns): QuerySelect

public function setDistinctOn(array $columns): QuerySelect

Description

Définit la clause DISTINCT ON pour la requête SELECT.

Paramètres

  • columns (array) : Les colonnes pour appliquer la clause DISTINCT ON.

Retour

  • QuerySelect : Cette instance.

addDistinctOn(array $columns): QuerySelect

public function addDistinctOn(array $columns): QuerySelect

Description

Ajoute la clause DISTINCT ON à la requête SELECT.

Paramètres

  • columns (array) : Les colonnes pour appliquer la clause DISTINCT ON.

Retour

  • QuerySelect : Cette instance.

setFrom(string $from, string $alias = null): QuerySelect

public function setFrom(string $from, string $alias = null): QuerySelect

Description

Définit la table à sélectionner.

Paramètres

  • from (string) : La table à sélectionner.
  • alias (string|null) : L'alias de la table (optionnel).

Retour

  • QuerySelect : Cette instance.

getFrom(): array

public function getFrom(): array

Description

Retourne la table à sélectionner.

Retour

  • array : La table et son alias.

addJoin(string $table, string|null $alias = null, string|null $type = '', string|null $condition = null): QuerySelect

public function addJoin(string $table, string|null $alias = null, string|null $type = '', string|null $condition = null): QuerySelect

Description

Ajoute une clause JOIN à la requête.

Paramètres

  • table (string) : La table à joindre.
  • alias (string|null) : L'alias de la table (optionnel).
  • type (string|null) : Le type de JOIN (optionnel).
  • condition (string|null) : La condition du JOIN (optionnel).

Retour

  • QuerySelect : Cette instance.

addJoins(array $joins): QuerySelect

public function addJoins(array $joins): QuerySelect

Description

Ajoute plusieurs clauses JOIN à la requête.

Paramètres

  • joins (array) : Les clauses JOIN.

Retour

  • QuerySelect : Cette instance.

setJoins(array $joins): QuerySelect

public function setJoins(array $joins): QuerySelect

Description

Définit les clauses JOIN de la requête.

Paramètres

  • joins (array) : Les clauses JOIN.

Retour

  • QuerySelect : Cette instance.

getJoins(): array

public function getJoins(): array

Description

Retourne les clauses JOIN de la requête.

Retour

  • array : Les clauses JOIN.

addWhere(string $where): QuerySelect

public function addWhere(string $where): QuerySelect

Description

Ajoute une clause WHERE à la requête.

Paramètres

  • where (string) : La clause WHERE.

Retour

  • QuerySelect : Cette instance.

addWheres(array $wheres): QuerySelect

public function addWheres(array $wheres): QuerySelect

Description

Ajoute plusieurs clauses WHERE à la requête.

Paramètres

  • wheres (array) : Les clauses WHERE.

Retour

  • QuerySelect : Cette instance.

setWhere(array|string $wheres): QuerySelect

public function setWhere(array|string $wheres): QuerySelect

Description

Définit la clause WHERE de la requête.

Paramètres

  • wheres (array|string) : Les clauses WHERE.

Retour

  • QuerySelect : Cette instance.

setWheres(array $wheres): QuerySelect

public function setWheres(array $wheres): QuerySelect

Description

Définit les clauses WHERE de la requête.

Paramètres

  • wheres (array) : Les clauses WHERE.

Retour

  • QuerySelect : Cette instance.

getWhere()

public function getWhere()

Description

Retourne les clauses WHERE de la requête.

Retour

  • array : Les clauses WHERE.

addGroupBy(string $groupBy): QuerySelect

public function addGroupBy(string $groupBy): QuerySelect

Description

Ajoute une clause GROUP BY à la requête.

Paramètres

  • groupBy (string) : La clause GROUP BY.

Retour

  • QuerySelect : Cette instance.

setGroupBy(array $groupBy): QuerySelect

public function setGroupBy(array $groupBy): QuerySelect

Description

Définit la clause GROUP BY de la

requête.

Paramètres

  • groupBy (array) : Les colonnes pour la clause GROUP BY.

Retour

  • QuerySelect : Cette instance.

getGroupBy(): array

public function getGroupBy(): array

Description

Retourne la clause GROUP BY de la requête.

Retour

  • array : Les colonnes pour la clause GROUP BY.

setHaving(string $having): QuerySelect

public function setHaving(string $having): QuerySelect

Description

Définit la clause HAVING de la requête.

Paramètres

  • having (string) : La clause HAVING.

Retour

  • QuerySelect : Cette instance.

getHaving(): string|null

public function getHaving(): string|null

Description

Retourne la clause HAVING de la requête.

Retour

  • string|null : La clause HAVING ou null si aucune clause HAVING n'est définie.

setOrderBy(string $orderBy): QuerySelect

public function setOrderBy(string $orderBy): QuerySelect

Description

Définit la clause ORDER BY de la requête.

Paramètres

  • orderBy (string) : La clause ORDER BY.

Retour

  • QuerySelect : Cette instance.

getOrderBy(): string|null

public function getOrderBy(): string|null

Description

Retourne la clause ORDER BY de la requête.

Retour

  • string|null : La clause ORDER BY ou null si aucune clause ORDER BY n'est définie.

setLimit(int $limit): QuerySelect

public function setLimit(int $limit): QuerySelect

Description

Définit la clause LIMIT de la requête.

Paramètres

  • limit (int) : La valeur de LIMIT.

Retour

  • QuerySelect : Cette instance.

getLimit(): int|null

public function getLimit(): int|null

Description

Retourne la valeur de la clause LIMIT.

Retour

  • int|null : La valeur de LIMIT ou null si aucune valeur n'est définie.

setOffset(int $offset): QuerySelect

public function setOffset(int $offset): QuerySelect

Description

Définit la clause OFFSET de la requête.

Paramètres

  • offset (int) : La valeur de OFFSET.

Retour

  • QuerySelect : Cette instance.

getOffset(): int|null

public function getOffset(): int|null

Description

Retourne la valeur de la clause OFFSET.

Retour

  • int|null : La valeur de OFFSET ou null si aucune valeur n'est définie.

Utilisation

Exemple

$query = new QuerySelect();
$query->addColumn('id')
      ->addColumn('name', 'username')
      ->setFrom('users')
      ->addWhere('age > 18')
      ->setOrderBy('name ASC')
      ->setLimit(10)
      ->setOffset(0);

$sql = $query->toSql();

Cet exemple crée une requête SELECT qui sélectionne les colonnes id et name (avec un alias username) de la table users, avec une condition WHERE, un tri par name en ordre croissant, une limite de 10 résultats et un décalage de 0.